package cn.edu.xhu.library_management.department.service;

import cn.edu.xhu.library_management.department.entity.LmFaculty;
import cn.edu.xhu.library_management.department.entity.search.SearchFaculty;

import java.util.List;
import java.util.Map;

/**
 * @Author: MMJ
 * @Date: 2022-01-28
 * @Description: 院系service接口类
 */
public interface FacultyService {
    /**
     * 添加院系，单个添加
     *
     * @param faculty 院系实体对象
     * @return true 成功 false 失败
     */
    public boolean addFaculty(LmFaculty faculty);

    /**
     * 添加院系，多记录添加
     *
     * @param faculties 院系实体对象集合
     * @return true 成功 false 失败
     */
    public boolean addFaculties(List<LmFaculty> faculties);

    /**
     * 通过院系ID，修改院系
     *
     * @param faculty 封装院系实体类
     * @return true 成功 false 失败
     */
    public boolean updateFaculty(LmFaculty faculty);

    /**
     * 通过院系ID，删除院系
     *
     * @param faId 院系ID
     * @return true 成功 false 失败
     */
    public boolean deleteFacultyById(Integer faId);

    /**
     * 通过院系IDs，删除院系
     *
     * @param faIds 院系IDs
     * @return true 成功 false 失败
     */
    public boolean deleteFacultiesByIds(List<Integer> faIds);

    /**
     * 查询所有的院系集合
     *
     * @return 院系实体对象集合 无数据为null
     */
    public List<LmFaculty> findAllFaculties();

    /**
     * 通过院系ID，查找院系对象
     *
     * @param faId 院系ID
     * @return 院系实体对象
     */
    public LmFaculty findFacultyById(Integer faId);


    /**
     * 院系搜索(带分页)
     * @param searchFaculty 院系搜索对象
     * @return
     */
    public Map<String, Object> search(SearchFaculty searchFaculty);
}
